/** @file 
 *  Header file contenente le strutture dati comuni a tutti i file.
 */
 
#define HDisplay 700 /**< Altezza del display */

/** Struttura che gestisce i parametri utili allo scrolling dello sfondo. */

struct sfondo 
{
	ALLEGRO_BITMAP *immagine; /**< immagine di sfondo */
	int larghezza; /**< larghezza dell'immagine di sfondo */
	
	int x; /**< x dell'immagine da cui si comincia a disegnare lo sfondo */
	int y; /**< y dell'immagine da cui si comincia a disegnare lo sfondo */
	int velx; /**< velocità con cui lo sfondo si muove */
	int sorgX; /**< x del display da cui si comincia a disegnare lo sfondo */
};

/** Struttura che gestisce i parametri utili alle azioni del giocatore. */

struct giocatore
{
	ALLEGRO_BITMAP *immagine, *esplosione; /**< spritesheet del personaggio e immagine dell'esplosione in caso di collisione */
	int larghezza;	/**< larghezza di ogni immagine dello spritesheet */
	int altezza;	/**< altezza di ogni immagine dello spritesheet */
	
	int x; /**< posizione del giocatore sull'asse x */
	int y; /**< posizione del giocatore sull'asse y */
	int vely; /**< velocità di salto del giocatore */
	int sorgX; /**< da dove iniziare a disegnare il giocatore dallo spritesheet in orizzontale */
	int sorgY; /**< da dove iniziare a disegnare il giocatore dallobspritesheet in verticale */
	bool salto; /**< indica se il giocatore sta saltando */
	bool morto; /**< indica se il giocatore è morto */
	int vite; /**< vite del giocatore */
	int punti; /**< punti del giocatore */
};

/** Struttura che gestisce i parametri dei cattivi del gioco. */

struct cattivi
{
	int x; /**< posizione del cattivo sull'asse x */
	int y; /**< posizione del cattivo sull'asse y */
	int velx; /**< velocità con cui si sposta verso il giocatore */
	int larghezza; /**< larghezza dell'immagine del cattivo */
	int altezza; /**< altezza dell'immagine del cattivo */
	
	ALLEGRO_BITMAP *immagine; /**< immagine del cattivo */
};
